/**

给定一个字符串，验证它是否是回文串，只考虑字母和数字字符，可以忽略字母的大小写。

说明：本题中，我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:

输入: "race a car"
输出: false

 */

/**
 * @param {string} s
 * @return {boolean}
 */
var isPalindrome = function (s) {
    s = s.replace(/[^1-9A-Za-z]/gi, '')
    let len = s.length % 2 ? parseInt(s.length / 2) + 1 : s.length / 2
    for (let i = 0; i < len; i++) {
        if (i + 1 <= len && s[i].toLocaleLowerCase() != s[s.length - 1 - i].toLocaleLowerCase()) {
            return false
        }
    }
    return true
};


console.log(isPalindrome("A man, a plan, a canal: Panama"))
console.log(isPalindrome("race a car"))
console.log(isPalindrome("abc d aba"))